﻿using System;
using System.Collections.Generic;
using System.Json;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using log4net;
using SW_SoftBully.Controllers.ModuloAdministracion;
using SW_SoftBully.Models;
using SW_SoftBully.Models.ModuloAdministracion.DepartamentoPeru;
using SW_SoftBully.Models.ModuloAdministracion.DistritoPeru;
using SW_SoftBully.Models.ModuloAdministracion.Proveedor;
using SW_SoftBully.Models.ModuloAdministracion.ProvinciaPeru;

namespace SW_SoftBully.Controllers.ModuloAdministracion.Proveedor
{
    public class ProveedorController : Controller
    {
        //
        // GET: /Proveedor/

        private SoftBullyDB db = new SoftBullyDB();
        ProveedorFacade proveedorFacade = new ProveedorFacade();
        DepartamentoPeruFacade departamentoPeruFacade = new DepartamentoPeruFacade();
        ProvinciaPeruFacade provinciaPeruFacade = new ProvinciaPeruFacade();
        DistritoPeruFacade distritoPeruFacade = new DistritoPeruFacade();

        public ActionResult Index()
        {
            return View();
        }

        public ActionResult Proveedor() {
            return View();
        }

        public ActionResult RegistrarProveedor() {
            return View();
        }

        public ActionResult BuscarProveedor() {
            return View();
        }

        [HttpPost]
        public JsonResult registrarProveedor(ProveedorBean proveedor)
        {
            if (proveedorFacade.Existeproveedor(proveedor))
            {
                return Json(new { me = "El proveedor ya existe" });
            }

            string conexion = proveedorFacade.Registrarproveedor(proveedor);

            if (conexion == "Bien")
            {
                return Json(new { me = "Se ingreso correctamente " + proveedor.RazonSocial});
            }
            else
            {
                return Json(new { me = conexion });
            }
        }

        [HttpPost]
        public JsonResult buscarProveedor(ProveedorBean proveedor)
        {
            List<ProveedorBean> listaProveedor = proveedorFacade.ListarProveedor(proveedor);

            return Json(new { listaProveedor });
        }

        [HttpPost]
        public JsonResult eliminarProveedor(ProveedorBean proveedor)
        {
            string conexion = proveedorFacade.Eliminarproveedor(proveedor);

            if (conexion == "Bien")
            {
                return Json(new { me = "Se eliminó correctamente " + proveedor.RazonSocial });
            }
            else
            {
                return Json(new { me = conexion });
            }
        }

        [HttpPost]
        public JsonResult modificarProveedor(ProveedorBean proveedor)
        {
            string conexion = proveedorFacade.Modificarproveedor(proveedor);

            if (conexion == "Bien")
            {
                return Json(new { me = "Se modificó correctamente el edificio " + proveedor.RazonSocial });
            }
            else
            {
                return Json(new { me = conexion });
            }
        }

        [HttpPost]
        public JsonResult cargarDepartamentos(DepartamentoPeruBean departamento)
        {
            List<DepartamentoPeruBean> listaDepartamentoPeru = departamentoPeruFacade.ListarDepartamentoPeru(departamento);

            return Json(new { listaDepartamentoPeru });
        }

        [HttpPost]
        public JsonResult cargarProvincias(DepartamentoPeruBean departamento)
        {
            List<ProvinciaPeruBean> listaProvinciaPeru = provinciaPeruFacade.ListarProvinciaPeru(departamento);

            return Json(new { listaProvinciaPeru });
        }

        [HttpPost]
        public JsonResult cargarDistritos(ProvinciaPeruBean provincia)
        {
            List<DistritoPeruBean> listaDistritoPeru = distritoPeruFacade.ListarDistritoPeru(provincia);

            return Json(new { listaDistritoPeru });
        }
    }
}
